php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2008, 00:10  
XTC
Neuer Benutzer
 
Registriert seit: 15.03.2008
Beiträge: 8
XTC befindet sich auf einem aufstrebenden Ast
Standard Hilfe, Datenbank nimmt keine neuen Daten und alte nicht löschen!

Hallo,

hoffe hier kann mir jemand helfen.

Folgendes Problem:

Wir erstellen in unseren System einzelne Kategorien welche in die Datenbank gespeichert werden, das funktioniert soweit ganz gut, ABER, wenn wir eine bestimmte Anzahl an Kategorien eingegeben haben geht nix mehr. Es lassen sich keine weiteren hinzufügen, keine löschen und auch keine ändern.
Am Script selbst konnte ich bisher keine Fehler finden, denke also das es etwas mit der Servereinstellung zu tun hat.

Währe für guten Rat sehr dankbar.


Mario
XTC ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.06.2008, 05:36  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Wenn du keine mehr einfuegen kannst, hast du die Primary-Key-Spalte vielleicht auf TINYINT und der Zahlenbereich ist eben voll.

Nicht loeschen nicht updaten ist mir noch nie untergekommen, hoechstens bei fehlerhaften Referenzen.

Bitte poste also den relevanten Code, anders kann dir nicht geholfen werden.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 06.06.2008, 08:45  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Und poste bitte aber auch das Formular fürs Update falls ih da eins benutzt. Ich habe so die Ahnung das ihr keine ID übergebt nach der ihr aber updaten wollt!

mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 06.06.2008, 11:47  
XTC
Neuer Benutzer
 
Registriert seit: 15.03.2008
Beiträge: 8
XTC befindet sich auf einem aufstrebenden Ast
Standard !

Hi,

danke für die Antworten, hier mal der gesammte code:

PHP-Code:
<?
session_start
();
define ('IN_ADMIN'1);
include_once (
'../includes/global.php');
if (
$session->value('adminarea')!='Active')
{
 
header_redirect('login.php');
}
else
{
 include_once (
'header.php');
 
$msg_changes_saved '<p align="center" class="contentfont">' AMSG_CHANGES_SAVED '</p>';
 
$parent_id = (!$_REQUEST['parent_id']) ? $_REQUEST['parent_id'];
 if (isset(
$_POST['form_save_settings']))
 {
  
$template->set('msg_changes_saved'$msg_changes_saved);
  if (
$_POST['country_id'])
  {
   foreach (
$_POST['country_id'] as $key => $value)
   {
    
$country_order = ($_POST['country_order'][$key]>&& $_POST['country_order'][$key]<10000) ? $_POST['country_order'][$key] : 10000;
    
$sql_update_countries $db->query("UPDATE " DB_PREFIX "countriesa SET
     name='" 
$db->rem_special_chars($_POST['name'][$key]) . "', country_order=" $country_order " WHERE
     id=" 
$value);
   }
  }
  if (!empty(
$_POST['new_name']))
  {
   
$sql_insert_country $db->query("INSERT INTO " DB_PREFIX "countriesa (name, country_order, parent_id) VALUES
    ('" 
$db->rem_special_chars($_POST['new_name']) . "', 10000, " $parent_id ")");
  }
  if (
count($_POST['delete'])>0)
  {
   
$delete_array $db->implode_array($_POST['delete']);
   
$sql_delete_countries $db->query_silent("DELETE c,s FROM " DB_PREFIX "countriesa c LEFT JOIN
    " 
DB_PREFIX "countriesa s ON s.parent_id=c.id WHERE
    c.id IN (" 
$delete_array ")");
   
   if (!
$sql_delete_countries)
   {
    
$db->query("DELETE FROM " DB_PREFIX "countriesa WHERE id IN (" $delete_array ")");
    
$db->query("DELETE FROM " DB_PREFIX "countriesa WHERE parent_id IN (" $delete_array ")");
   }
  }
 }
 (string) 
$countries_page_content NULL;
 
$sql_select_countries $db->query("SELECT id, name, country_order FROM
  " 
DB_PREFIX "countriesa WHERE parent_id=" $parent_id " ORDER BY country_order ASC, name ASC");
 while (
$country_details $db->fetch_array($sql_select_countries))
 {
  
$background = ($counter++%2) ? 'c1' 'c2';
  
$order_value = ($country_details['country_order']>&& $country_details['country_order']<10000) ? $country_details['country_order'] : '';
  
$countries_page_content .= '<input type="hidden" name="country_id[]" value="' $country_details['id'] . '"> '.
   
'<tr class="' $background '"> '.
   
' <td> ';
  
   
$countries_page_content .= '<a href="table_countriesa.php?parent_id=' $country_details['id'] . '"> '.
   
'  <img src="images/catplus.gif" alt="' AMSG_EDIT_STATES '" width="20" height="20" border="0"></a>';
  
$countries_page_content .= '</td> '.
       
' <td><input name="name[]" type="text" value="' $country_details['name'] . '" size="60"></td> '.
   
' <td align="center"><input name="country_order[]" type="text" value="' $order_value '" size="8"></td> '.
   
' <td align="center"><input type="checkbox" name="delete[]" value="' $country_details['id'] . '"></td> '.
   
'</tr> ';
 }
 if (
$parent_id)
 {
  (string) 
$state_header_message null;
  
$country_name $db->get_sql_field("SELECT name FROM " DB_PREFIX "countriesa WHERE id=" $parent_id"name");
        
$country_namex $db->get_sql_field("SELECT parent_id FROM " DB_PREFIX "countriesa WHERE id=" $parent_id"parent_id");
  
$state_header_message '<tr class="c2"><td style="padding: 3px;">' AMSG_EDIT_STATES_FOR ' ' $country_name .
   
' [ <a href="table_countriesa.php?parent_id=' $country_namex '"">' GMSG_BACK '</a> ]</td></tr>';
  
$template->set('state_header_message'$state_header_message);
 }
 
$template->set('header_section'AMSG_TABLES_MANAGEMENT);
 
$template->set('subpage_title'AMSG_EDIT_COUNTRIES);
 
$template->set('parent_id'$parent_id);
 
$template->set('countries_page_content'$countries_page_content);
 
$template_output .= $template->process('table_countriesa.tpl.php');
 include_once (
'footer.php');
 echo 
$template_output;
}
?>
XTC ist offline  
Alt 06.06.2008, 11:58  
XTC
Neuer Benutzer
 
Registriert seit: 15.03.2008
Beiträge: 8
XTC befindet sich auf einem aufstrebenden Ast
Standard !!

Und hier nochmal die SQL-Tabelle dafür:

PHP-Code:
CREATE TABLE `b2b_countriesa` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(255NOT NULL default '',
  `
country_orderint(11NOT NULL default '0',
  `
parent_idint(11NOT NULL default '0',
  
PRIMARY KEY  (`id`),
  
KEY `parent_id` (`parent_id`),
  
KEY `parent_id_2` (`parent_id`,`country_order`,`name`),
  
KEY `parent_id_3` (`parent_id`,`id`)
ENGINE=MyISAM AUTO_INCREMENT=5714 DEFAULT CHARSET=utf8 COMMENT='Table with countriesa' AUTO_INCREMENT=5714 
Sind bisher 5675 Einträge drin.
XTC ist offline  
Alt 06.06.2008, 12:11  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ohne das Template-System zu kennen, kann ich mit dem Code nicht viel anfangen.Aber hast du mal versucht, die Änderungen direkt mit SQL zu machen?
__________________
Gruss
L
lazydog ist offline  
Alt 06.06.2008, 12:27  
XTC
Neuer Benutzer
 
Registriert seit: 15.03.2008
Beiträge: 8
XTC befindet sich auf einem aufstrebenden Ast
Standard !!!

Ja, in der DB selbst kann ich löschen, ändern, hinzufügen!
XTC ist offline  
Alt 06.06.2008, 13:03  
XTC
Neuer Benutzer
 
Registriert seit: 15.03.2008
Beiträge: 8
XTC befindet sich auf einem aufstrebenden Ast
Standard !

Fileicht hilft euch das hier noch:

PHP-Code:
function query ($query$debug_output false$die true)
 {
  if (
$debug_output)
  {
   (string) 
$explain_output null;
   
   
$explain_result = @mysql_query("EXPLAIN " $query);
   
   
$explain_output '<table width="100%" cellpadding="3" cellspacing="2" class="contentfont border"> '.
    
' <tr class="c4"> '.
    
'  <td colspan="10">SQL COMMAND</td> '.
    
' </tr> '.
    
' <tr> '.
    
'  <td colspan="10">EXPLAIN ' $query '</td> '.
    
' </tr> '.
    
' <tr class="c4"> '.
    
'  <td>id</td> '.
    
'  <td>select_type</td> '.
    
'  <td>table</td> '.
    
'  <td>type</td> '.
    
'  <td>possible_keys</td> '.
    
'  <td>key</td> '.
    
'  <td>key_len</td> '.
    
'  <td>ref</td> '.
    
'  <td>rows</td> '.
    
'  <td>Extra</td> '.
    
' </tr>';
    
' <tr class="c4"> '.
    
'  <td colspan="10"></td> '.
    
' </tr> ';
   if (
$explain_result)  
   {
    while (
$explain $this->fetch_array($explain_result))
    {
     
$explain_output .= '<tr class="c1"> '.
      
' <td>' $explain['id'] . '</td> '.
      
' <td>' $explain['select_type'] . '</td> '.
      
' <td>' $explain['table'] . '</td> '.
      
' <td>' $explain['type'] . '</td> '.
      
' <td>' implode(', 'explode(','$explain['possible_keys'])) . '</td> '.
      
' <td>' $explain['key'] . '</td> '.
      
' <td>' $explain['key_len'] . '</td> '.
      
' <td>' $explain['ref'] . '</td> '.
      
' <td>' $explain['rows'] . '</td> '.
      
' <td>' $explain['Extra'] . '</td> '.
      
'</tr>';    
    }
   }
   
$explain_output .= '</table>';
   
   echo 
$explain_output;   
  }
  
//echo $query . '<br>'; ## used if we want to display all queries made on a page
  
$result = @mysql_query($query);
  
  if (!
$result)
  {
   
$mysql_error $this->display_error(MSG_ERROR_MYSQL_QUERY$this->sql_error($result), $query);
   if (
$die)
   {
    die (
$mysql_error);
   }
   else 
   {
    
$this->query_error $mysql_error;
    
    return 
null;
   }
  }
  else 
  {
   return 
$result;
  }
 }
 function 
query_silent ($query)
 {
  
$result = @mysql_query($query);
  if (!
$result
  {
   return 
false;
  }
  else 
  {
   return 
$result;
  }
 } 
XTC ist offline  
Alt 06.06.2008, 13:55  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Wieder jemand, der/die die Forumsregeln nicht gelesen hat. Eigentlich noch schlimmer, mit
PHP-Code:
  $result = @mysql_query($query); 
wird nicht nur kein mysql_error() abgefragt, eventuelle PHP-Fehlermeldungen werden durch das @ auch noch unterdrückt .
Also ändere das mal überall in
PHP-Code:
  $result mysql_query($query) or exit("Fehler: " mysql_error "<br />Abfrage: $query<br />; 
__________________
Gruss
L
lazydog ist offline  
Alt 06.06.2008, 17:09  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Was mir aber in dem Code auf alle Fälle auffällt ist das zwar Formularfelder enthalten sind aber eigentlich kein Formular existiert weil das hier fehlt

<form action="" method="post"></form>

Und einen Submit Butten für ein Update wie ein Löschen finde ich da auch nirgends!

Wei es gibt in demCode z.B. so was if (!empty($_POST['new_name']))

aber der Button (submit) existiert da gar nicht!

mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eintragen von Daten per Formular in MySQL Datenbank PHP Tipps 2004 11 07.06.2009 08:58
Daten in Datenbank übergeben Bebre PHP Tipps 2008 2 11.02.2008 11:41
Neuen Datensatz in Datenbank einfügen Bebre PHP Tipps 2008 9 09.02.2008 18:51
Daten von Datenbank durch Klick in Feld holen Taktaky PHP Tipps 2008 23 22.08.2007 17:20
Zurück und alte Daten anzeigen FrankTheTank PHP Tipps 2007 15 04.08.2007 20:12
[Erledigt] alte Datenbank retten ohne möglickeit zum dump Datenbanken 19 19.03.2006 19:16
Daten aus Datenbank sinnvoll speichern PHP Tipps 2006 15 02.02.2006 19:54
[Erledigt] Variable Links mit daten aus SQL Datenbank PHP Tipps 2005-2 8 05.08.2005 13:10
XML Daten in eine MySQL Datenbank Datenbanken 8 24.07.2005 16:03
Daten aus der Datenbank in 3 Spalten pro Zeile darstellen? ThaRider PHP Tipps 2005-2 7 14.07.2005 23:00
Daten von einem Datenbank in eine anderes überspielen... PHP Tipps 2005-2 2 17.06.2005 11:49
[Erledigt] Daten aus Formular in Datenbank eingeben ??? PHP Tipps 2004 6 14.08.2004 23:17
[Erledigt] Daten in Datenbank einlesen Datenbanken 2 08.08.2004 13:31
daten in datenbank übertragen PHP Tipps 2004 17 23.06.2004 15:40
Neue Datenbank? Alte Daten gelöscht? was ist los? Off-Topic Diskussionen 37 21.06.2004 23:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rem_special_chars, datenbank nimmt einträge nicht an, msg_error_mysql_query, datenbank nimmt daten nicht an php, xtc fetch_array

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum