For schleife: Fehler - "Uninitialized string offset"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • For schleife: Fehler - "Uninitialized string offset"

    Guten Abend

    Ich habe ein Problem mit folgender "for-Schleife":

    PHP-Code:
    for($i=0$i<3$i++) 
      {
        
    $sql "
    SELECT 
        link_name AS name, 
        link_url AS url, 
        link_blank AS blank 
    FROM 
        cms_newslinks 
    WHERE 
        n_id ='"
    .$nid."'
      AND 
        a_id = '"
    .$i."' ";

      
    $qry mysql_query($sql) OR die(mysql_error());
         echo 
    $sql."<br />";
          echo 
    $qry."<br />";
           while(
    $link mysql_fetch_assoc($qry))
            {
                
    print_r($link['blank'][$i]); echo "<br />";
              
    $value_link_name[$i] = $link['name'];
              
    $value_link_url[$i] = $link['url'];
              if(isset(
    $link['blank'][$i]) AND  $link['blank'][$i]=="1")
                   {
    $value_link_blank[$i] = "checked=\"checked\" ";} else {$value_link_blank[$i] = "";}
           }

    In der Datenbank haben alle link_blank den Wert 1.
    Das Skript gibt nun folgendes aus:

    SELECT link_name AS name, link_url AS url, link_blank AS blank FROM cms_newslinks WHERE n_id ='2' AND a_id = '0'
    Resource id #9
    1

    SELECT link_name AS name, link_url AS url, link_blank AS blank FROM cms_newslinks WHERE n_id ='2' AND a_id = '1'
    Resource id #10
    Notice: Uninitialized string offset: 1 in VERZEICHNIS\edit.php on line 141

    SELECT link_name AS name, link_url AS url, link_blank AS blank FROM cms_newslinks WHERE n_id ='2' AND a_id = '2'
    Resource id #11
    Notice: Uninitialized string offset: 2 in VERZEICHNIS\edit.php on line 141

    Wie man sieht, gibt das Skript jedes mal die Resource id korrekt aus, jedoch wird der Wert nur beim ersten mal im Array gespeichert.

    Für eure Hilfe wäre ich sehr dankbar

    Gruß
    Nik13

  • #2
    Re: For schleife: Fehler - &quot;Uninitialized string offset&quot;

    Original geschrieben von Nik13
    PHP-Code:
    if(isset($link['blank'][$i]) AND ... 
    vermutung:
    da $link['blank'] hier kein array ist, wird [$i] als {$i} interpretiert.

    und wenn der string $link['blank'] dann an position $i kein zeichen enthält, gibt's halt die notice "Uninitialized string offset".

    wieso versuchst du denn überhaupt, an der stelle mit einem index darauf zuzugreifen?
    $link hast du mit
    $link = mysql_fetch_assoc($qry)
    erzeugt - es ist also ein eindimensionales, assoziatives array.


    tipp: print_r() kann immer helfen, die struktur eines arrays besser zu verstehen (wenn man nicht von vornherein weiß, was man da eigentlich tut ...)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      bist du dir sicher, daß das script, würde es denn funktionieren, das macht, was du möchtest?

      ich bin der meinung, du hast da etwas ganz anderes programmiert, mal abgesehen von der umständlichkeit.

      was möchtest du tun?
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        Vorweg möchte ich sagen, dass ich noch nicht so lange mit PHP Programmiere

        Ich bin dabei, ein Newssystem zu coden, in dem man jeder News Links zuweisen kann (Screenshot), die dann automatisch angehangen werden.
        Diese Links werden in einer seperaten Tabelle mit dem Namen cms_newslinks gespeichert.
        Diese hat folgende Spalten :
        n_id (News id)
        a_id (Array id [in welche Zeile der Link eingetragen wurde]
        link_name
        link_url
        link_blank

        Das Adden von News funktioniert auch einwandfrei.
        Nur bei der Editierung sollen wieder die Checkboxen für die "Neues Fenster ?" Auswahl bei Bedarf markiert werden.
        Wenn dann also in der Datenbank bei dem jeweiligen Link Blank = 1 ist, soll checked="checked" in den <input> tag geschrieben werden.

        Mich würde aber eher interessieren, wie man dieses Problem lösen könnte
        Zuletzt geändert von Nik13; 10.05.2005, 20:39.

        Kommentar


        • #5
          a_id (Array id [in welche Zeile der Link eingetragen wurde]
          das verstehe ich nicht, was du damit bewirken/bezwecken willst.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Das müsste anhand des Screenshots nachvollziehbar sein
            Damit wird festgelegt, in welchem formularfeld der Wert eingetragen werden muss.
            Ich konnte das Problem jetzt aber mit einer einfachen 2. For-Schleife lösen.

            Vielen Dank für eure schnellen Antworten !

            Gruß
            Nik13

            Kommentar

            Lädt...
            X